package com.ikun.utils;



import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.Map;

public  class JwtUtil {
    final static String secretKey="123abcdefg";//设置密钥
    final static long expiration = 60*60*1000;//设置有效时间为一个小时内
        /**
     * 生成jwt令牌:返回值为字符串
     */
    public static String generateJwt( Map<String, Object> claims) {
        String jwt = Jwts.builder()
                .signWith(SignatureAlgorithm.HS256, secretKey)//签名算法
                .setClaims(claims) //自定义内容(载荷)
                .setExpiration(new Date(System.currentTimeMillis() + expiration))//设置有效期为1h
                .compact();//设置jwt令牌的呈现形式
        return jwt;
    }
    /**
     * 解析jwt令牌，解析成功返回true，失败返回false
     * */
    public static boolean parseJwt(String jwt) {
        try {
            Claims claims = Jwts.parser()
                   .setSigningKey(secretKey)
                   .parseClaimsJws(jwt).getBody();
            System.out.println("解析成功，jwt负载的内容为"+claims);
            return true;
        } catch (Exception e) {
            return false;
        }
    }
}
